Schema first
↔ Code first
REST API(OpenAPI)
WIP...
GraphQL(GraphQL Schema)
GraphQL Schema を事前に定義し、そのファイルからコードを生成する
バックエンド・フロントエンドともに同じ GraphQL Schema を参照する
バックエンドとフロントエンドが異なるチームで並列に開発する場合などに向いている
メリット
GraphQL Schema をバックエンドとフロントエンド共有の資産に出来る
特定の言語やフレームワークに依存しない
デメリット
GraphQL Schema Language には文法上の制約が多い
GraphQL Schema のバージョン管理が煩雑に
GraphQL について理解が必要
e.g.
NestJS
https://docs.nestjs.com/graphql/interfaces#schema-first
https://docs.nestjs.com/graphql/resolvers#schema-first
gRPC(Protocol Buffers)
WIP...